import storage from "./storage.js"
export function msg(content,time=3000){
	uni.showToast({
		icon:'none',
		title: content,
		duration: time
	});
}

export function showLoading(content="加载数据中...",mask=true){
	uni.showLoading({
	    title: content,
		mask: mask
	});
}

export function hideLoading(timer=0){
	if(timer > 0){
		var t = setTimeout(function () {
		    uni.hideLoading();
			clearTimeout(t);
		}, timer);
	}else{
		uni.hideLoading();
	}
}

export function in_array(search,array){
	let flag = false;
	for(let i in array){
		if(array[i]==search){
			flag = true;
			break;
		}
	}

	return flag;
}

export function isDataType(data,type){
	return Object.prototype.toString.call(data) === '[object '+type+']';
}

export function ltrim(str,char){
	let pos = str.indexOf(char);
	let sonstr = str.substr(pos+1);
	return sonstr;
}

export function rtrim(str,char){
	let pos = str.lastIndexOf(char);
	let sonstr = str.substr(0,pos);
	return sonstr;
}

/**
 * 保留当前页面，跳转到应用内的某个页面，使用uni.navigateBack可以返回到原页面。
 */
export function navigateTo(url,params){
	uni.navigateTo({
		url: parseUrl(url,params)
	})
}

/**
 * 关闭当前页面，跳转到应用内的某个页面。
 */
export function redirectTo(url,params){
	uni.redirectTo({
		url: parseUrl(url,params),
		animationType: 'pop-in',
		animationDuration: 2000
	});
}

/**
 * 关闭所有页面，打开到应用内的某个页面。
 */
export function reLaunch(url,params){
	uni.reLaunch({
		url: parseUrl(url,params)
	});
}

/**
 * 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面。
 */
export function switchTab(url,params){
	uni.switchTab({
		url: parseUrl(url,params)
	});
}

/**
 * 关闭当前页面，返回上一页面或多级页面
 */
export function navigateBack(delta){
	uni.navigateBack({
		delta: delta,
		animationType: 'pop-out',
		animationDuration: 200
	});
}

/**
 * 预加载页面，是一种性能优化技术。被预载的页面，在打开时速度更快。
 */
export function preloadPage(url, params){
	uni.preloadPage({
		url: parseUrl(url,params)
	});
}

export function prePage(){
	let pages = getCurrentPages();
	let prePage = pages[pages.length - 2];
	// #ifdef H5
	return prePage;
	// #endif
	return prePage.$vm;
}

/**
 * rpx转px
 * @param int|float num
 */
export function rpx2px(num){
	// const info = uni.getSystemInfoSync()
	// let scale = 750 / info.windowWidth;
	// return (Number.isNaN(parseFloat(num)) ? 0 : parseFloat(num)) / scale;
	return uni.upx2px(num);
}

/**
 * @param int|float num
 */
export function px2rpx(num){
	return num/(uni.upx2px(num)/num);
}

/**
 * 获取窗口的宽高
 */
export function getSystemInfo(){
	const info = uni.getSystemInfoSync();
	return {
		w: info.windowWidth,
		h: info.windowHeight
	};
}

/**
 * 功能：路由解析并且拼接
 * 使用：parseUrl('home', {id:1,type: 'add'})
 * 得到：'/pages/home?id=1&type=add'
 */
function parseUrl(url,params){
	let arr = [];
	let string = '';
	for(let i in params){
		arr.push(i + "=" + params[i]);
	}
	
	string = "/pages/" + url;
	if(arr.length > 0){
		string += "?" + arr.join("&");
	}
	
	return string;
}
//获取用户IP
 export function getUserIp(){
	 //#ifdef H5
	  //只执行h5
	 uni.request({
	 	url: '/sohu/cityjson',
	 	success: (res) => {
	 		const reg = /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/;
	 		let ip = reg.exec(res.data);
	 		console.log(ip)
	 		// console.log(res.data)
	 		//console.log(ip[0]);
			storage.set("ip",ip[0]);
	 	}
	 });
	   //只执行h5
	 //  #endif
 }
//获取手机型号
export function getPhoneModel() {
	let brand = '';
	let zhDev = {
		'apple': 'iPhone',
		'samsung': '三星',
		'huawei': '华为',
		'xiaomi': '小米',
		'oppo': 'OPPO',
		'vivo': 'Vivo',
		'oneplus': '一加',
		'sony': '索尼',
		'lg': 'LG',
		'motorola': '摩托罗拉',
		'google': '谷歌',
		'nokia': '诺基亚',
		'htc': 'HTC',
		'lenovo': '联想',
		'asus': '华硕',
		'zte': '中兴',
		'meizu': '魅族',
		'coolpad': '酷派',
	}

	if (uni.getSystemInfoSync().platform === 'android' || 'ios') {
		let model = uni.getSystemInfoSync().brand.toLowerCase();
		brand = zhDev[model] ? zhDev[model] : '其它'
	} else {
		brand = '其它'
	}

	console.log('手机品牌', brand)
	storage.set("device",brand);
}
